home *** CD-ROM | disk | FTP | other *** search
- /*************************************************************************
- * "sigln.h"
- *-------------------------------------------------------------------------
- * Line input library
- * Copyright (c) 1993, TaroPYON
- *************************************************************************/
-
- #ifndef _SIGLN_H
- #define _SIGLN_H
-
- #ifndef _SIEV_H
- # include <siev.h>
- #endif
- #ifndef _SIIDL_H
- # include <siidl.h>
- #endif
- #ifndef _SIFTS_H
- # include <sifts.h>
- #endif
- #ifndef _SIWIN_H
- # include <siwin.h>
- #endif
- #ifndef _SIKCS_H
- # include <sikcs.h>
- #endif
-
- #define GLN_IDL_PRIO (1)
-
- #define GLN_CURSTT_BLINK (0x0001_0000) /* カーソルブリンク */
- #define GLN_CURSTT_DSPON (0x0000_0001) /* カーソル表示中 */
-
- typedef struct _glnhisdat_t /* ヒストリデータ構造体 */
- {
- struct _glnhisdat_t *next, *prev;
- size_t len;
- char *s;
- } GLNHISDAT_T;
-
- typedef struct /* ヒストリ構造体 */
- {
- int linMax; /* 何行保持しておくか */
- int linNo; /* 現在位置 */
- GLNHISDAT_T *crt; /* 現在位置 */
- GLNHISDAT_T *top; /* 先頭 */
- GLNHISDAT_T *last; /* 最終 */
- GLNHISDAT_T *org; /* オリジナル */
- } GLNHIS_T;
-
- typedef struct _gln_t
- {
- unsigned int att; /* 属性 */
- unsigned int stt; /* ステータス */
-
- EV_T *ev; /* イベント */
- FRAME_T fr; /* 表示フレーム */
- FRAME_T frCur; /* カーソルフレーム */
- FTSDAT_T *fts; /* フォント */
- int spcX,spcY; /* 字間 */
- int tabSiz; /* タブサイズ */
- int ofsX; /* 表示オフセット(dot) */
- int mdInp; /* 入力モード */
- int flgEdit; /* 編集したかどうか */
-
- int sttCur; /* カーソル状態 */
- unsigned int clkCur; /* カーソルブリンク用 */
- IDL_T *idl; /* アイドリング用 */
-
- size_t bufSiz; /* バッファサイズ */
- size_t bufLen; /* 入力文字数 */
- size_t curPos; /* カーソル位置 */
- char *buf; /* 入力用バッファ */
- char *bufDsp; /* 表示用バッファ */
- char *org; /* オリジナル文字列 */
- char *sHis; /* 1行ヒストリ */
-
- int selFlag; /* 選択中 */
- size_t selTop; /* 選択開始位置 */
- size_t selLast; /* 選択最終位置 */
-
- KCS_T *kcs; /* キーカスタマイズ用 */
- GLNHIS_T *his; /* ヒストリ */
-
- WIN_T *win; /* ウィンドゥ */
- int (*func)(int,struct _gln_t *);
- void *ptr; /* 汎用ポインタ */
-
- int evNo[16]; /* イベントNo */
- COLOR_T *colTbl; /* カラーテーブル */
- } GLN_T;
-
- #define GLN_STT_STOP (0x0000_0001) /* 動作停止 */
-
- #define GLN_INP_INS (0) /* 挿入モード */
-
- #define GLN_EVNO_NOTHING (0)
- #define GLN_EVNO_CANCEL (1) /* キャンセル */
- #define GLN_EVNO_END (2) /* 終了 */
- #define GLN_EVNO_MOVCUR (3) /* カーソル移動 */
- #define GLN_EVNO_EDIT (4) /* 編集あり */
-
- /* "gln010.c" ----------------------------------------------------*/
- extern GLN_T *GLN_workAlloc( int (*func)(int,GLN_T *), void *ptr );
- extern void GLN_workFree( GLN_T *gln );
-
- /* "gln011.c" ----------------------------------------------------*/
- extern int GLN_setKcs( GLN_T *gln, unsigned int att );
-
- /* "gln021.c" ----------------------------------------------------*/
- extern int GLN_setBuf( GLN_T *gln, size_t bufSiz, CONST char *s );
- extern int GLN_setPos( GLN_T *gln, FRAME_T *fr );
- extern int GLN_start( GLN_T *gln );
- extern int GLN_stop( GLN_T *gln );
-
- /* "gln022.c" ----------------------------------------------------*/
- extern int GLN_evWorkAlloc( GLN_T *gln, EV_T *bsEv );
-
- /* "gln023.c" ----------------------------------------------------*/
- extern int GLN_setWin( GLN_T *gln, WIN_T *win );
-
- /* "gln024.c" ----------------------------------------------------*/
- extern int GLN_evLink( GLN_T *gln, EV_T *bsEv );
-
- /* "gln025.c" ----------------------------------------------------*/
- extern int GLN_blink( GLN_T *gln, int on_off );
-
- /* "gln031.c" ----------------------------------------------------*/
- extern int GLN_chkNextCurPos( GLN_T *gln, int len );
- extern int GLN_chkCurPos( GLN_T *gln );
- extern int GLN_isBackCh( GLN_T *gln );
-
- /* "glnflush.c" ----------------------------------------------------*/
- extern int GLN_flush( GLN_T *gln );
- extern void GLN_flush2( GLN_T *gln );
-
- /* "glncdsp.c" ----------------------------------------------------*/
- extern int GLN_curDsp( GLN_T *gln, int on_off );
-
- /* "glnbuf.c" ----------------------------------------------------*/
- extern int GLN_setStr( GLN_T *gln, size_t len, CONST char *s );
- extern int GLN_del( GLN_T *gln, size_t len );
-
- /* "glnhis.c" ----------------------------------------------------*/
- extern int GLN_setHis( GLN_T *gln, GLNHIS_T *his );
-
- /* "gln101.c" ----------------------------------------------------*/
- extern int GLN_kcsFnc( GLN_T *gln, KCSKEY_T *kcsKey );
-
- #endif
-